package com.sz.biz.logistics.core.service;

import com.sz.biz.logistics.core.entity.ProductGroup;
import com.sz.biz.logistics.core.dto.AllProductGroupDto;
import com.sz.biz.logistics.core.dto.ProductGroupDto;
import com.sz.common.base.dto.TreeNode;

import java.util.List;

/**
 * Function: 产品组ervice <br>
 * Author: penghui.zheng <br>
 * Date: 2017-05-10 16:08:00
 */
public interface ProductGroupService {
    /**
     * 根据parentId查询产品组信息
     *
     * @param parentId
     * @return
     */
    List<ProductGroupDto> findByParentId(Integer parentId);

    /**
     * 根据id查询父节点
     *
     * @param id
     * @return
     */
    ProductGroup findById(Integer id);
    List<ProductGroup> findById(List<Integer> ids);

    /**
     * 根据id查询父节点
     *
     * @param id
     * @return
     */
    AllProductGroupDto findAllById(Integer id);

    /**
     * 所有产品组
     * @param parentId
     * @param isShowAll
     * @return
     */
    List<TreeNode> findAll(Integer parentId, Boolean isShowAll);

    /**
     * 产品组列表
     * @return
     */
    List<ProductGroup> list();
    /**
     * 根据id查询父节点
     *
     * @param id
     * @return
     */
    int findTypeById(Integer id);
    
    /**
     * 查询运输类型
     * @return
     */
    List<ProductGroupDto> findTransportType();

    /**
     * 根据parentId查询产品组信息-客户平台
     * @param parentId
     * @return
     */
    List<ProductGroupDto> findByParentIdCustomer(int parentId);

    /**
     * 获取所有叶子节点的产品组信息
     * @return
     */
    List<ProductGroup> findAllChild();
}
